package marina.model;

import java.util.Scanner;

public class SungJukVO {
	//멤버 변수(private)
	private String strName;
	private int kor;
	private int eng;
	private int mat;
	private int total;
	private double average;
	private char grade;
	//생성자
	public SungJukVO(String strName, int kor, int eng, int mat){
		//shadowed 현상을 해결하기 위해 this를 사용.
		this.strName = strName;
		this.kor = kor;
		this.eng = eng;
		this.mat = mat;
	}
	//메서드
	//멤버 변수에 값을 저장하는 메서드 : setter
	//set	멤버 변수 명		(멤버 변수 자료형		멤버 변수명)
	public void setName(String strName){	this.strName = strName;		}
	public void setKor(int kor){	this.kor = kor;		}
	public void setEng(int eng){	this.eng = eng;		}
	public void setMat(int mat){	this.mat = mat;		}
	
	//멤버 변수의 값을 읽어오는 메서드 : getter
	//멤버 변수 자료형 	get		멤버 변수 명		() {	return		멤버 변수 명		}
	public String getName() {	return strName;		}
	public int getKor() {	return kor;		}
	public int getEng() {	return eng;		}
	public int getMat() {	return mat;		}
	public int getTotal() {
		total = kor + eng + mat;
		return total;
	}
	public double getAverage() {
		average = (double)total / 3;
		return average;
	}
	public char getGrade() {
		switch ((int)average / 10) { 
		case 10:
			grade = '수';
			break;
		case 9:
			grade = '수';
			break;
		case 8:
			grade = '우';
			break;
		case 7:
			grade = '미';
			break;
		case 6:
			grade = '양';
			break;
		default:
			grade = '가';
		}
		return grade;
	}
	
	// scanner 생성
		public static Scanner makeScanner(){ //참조 형식의 변수도 가능하다는 거~
			Scanner sc = new Scanner(System.in);
			return sc;
		}
		// scanner 소멸
		public static void closeScanner(Scanner sc){
			sc.close();
		}
	
	@Override
	public String toString() {
		String result = "";
		result += strName + " 학생의 ";
		result += "총점은 " + getTotal() + ", 평균은 " + getAverage() + ", 성적은 " + getGrade() + "입니다.";
		return result;
	}
}
